package com.woniu108.product.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.woniu108.carService.commos.dto.PreOrderDto;
import com.woniu108.product.model.PreOrder;
import com.woniu108.product.param.*;

import java.util.List;

/**
 * <p>
 * 服务预约表 服务类
 * </p>
 *
 * @author yanxi
 * @since 2024-05-23
 */
public interface PreOrderService extends IService<PreOrder> {
    /**
     * 门店查询需处理预约
     * @param storeAdminId 门店管理员账号id
     * @return 门店查询需处理预约详情
     */
    List<PreOrderDto> findStorePreOrder(String storeAdminId);

    /**
     * 查询用户预约
     * @param userId 用户id
     * @return 预约详情
     */
    List<PreOrderDto> findAllUserPreOrder(String userId);

    /**
     * 门店同意预约
     * @param param 预约编号，门店管理id
     * @return boolean值
     */
    Boolean storeAgreePreOrder(StoreAgreePreOrderParam param);

    /**
     * 门店不同意预约
     * @param param 预约编号，门店管理id
     * @return boolean值
     */
    Boolean storeDisAgreePreOrder(StoreAgreePreOrderParam param);

    /**
     * 用户取消预约
     * @param param 预约编号,用户id
     * @return boolean值
     */
    Boolean userCancelPreOrder(UserCancelPreOrderParam param);

    /**
     * 到店，预约完成
     * @param param  预约编号,用户id,门店管理id
     * @return boolean值
     */
    Boolean finishPreOrder(FinishPreOrderParam param);

    /**
     * 用户删除处理完的预约订单
     * @param param 预约编号,用户id,
     * @return boolean值
     */
    Boolean userDeletePreOrder(UserDeletePreOrderParam param);

    /**
     * 用户新增订单
     * @param param 预约到店时间,预约服务id（list）,用户id
     * @return boolean值
     */
    Boolean userInsertPreOrder(UserInsertPreOrderParam param);
}
